package sv.com.globalsolutionslt.manejador;

import sv.com.globalsolutionslt.entidades.Usuario;
import java.io.Serializable;
import javax.faces.event.ActionEvent;
import javax.inject.Named;
import javax.faces.view.ViewScoped;
import org.jasypt.util.password.BasicPasswordEncryptor;
import sv.com.globalsolutionslt.manejador.util.JsfUtil;

@Named(value = "usuarioController")
@ViewScoped
public class UsuarioController extends AbstractController<Usuario> implements Serializable {

    private String confirmacionContrasenia;

    public UsuarioController() {
        super(Usuario.class);
    }

    @Override
    public void save(ActionEvent event) {
        if (!this.esClaveCorrecta()) {
            JsfUtil.agregarMensajeAdvertencia("La Clave no coincide con confirmación");
            return ;
        }
        super.getSelected().setContrasenia(new BasicPasswordEncryptor().encryptPassword(getSelected().getContrasenia()));
        super.save(event); //To change body of generated methods, choose Tools | Templates.
    }

    public void guardarNuevoUsuario(ActionEvent ev) {
        if (!this.esClaveCorrecta()) {
            JsfUtil.agregarMensajeAdvertencia("La Clave no coincide con confirmación");
            return ;
        }
        super.getSelected().setContrasenia(new BasicPasswordEncryptor().encryptPassword(getSelected().getContrasenia()));
        super.saveNew(ev);
    }

    private boolean esClaveCorrecta() {
        return getSelected().getContrasenia().equals(this.getConfirmacionContrasenia());
    }

    public String getConfirmacionContrasenia() {
        return confirmacionContrasenia;
    }

    public void setConfirmacionContrasenia(String confirmacionContrasenia) {
        this.confirmacionContrasenia = confirmacionContrasenia;
    }

}
